資料結構(data structure)和演算法(algorithm)是程式內核不可或缺的兩個部分。在鐵人賽的第一到十九天裡,我們從零開始學習如何使用C++來撰寫程式,指的是他的語法與使用方式,而當我們進階到資料結構與演算法時,我們會更深入的解析程式內執行的差異。而這些差異可以幫助我們更加增進不同情況下的"效能"(performance)。藉由資結與演算法的改進,我們能讓原本須執行很久的程式(在裡面我們會用"時間複雜度",time complexity與"空間複雜度",space complexity兩個方面來描述程式),得以迅速(時間複雜度降低)來得到答案。
也許一開始我們在寫程式的時候並不會注意到這麼多差距,想說有達到目的就好,但是在程式執行序多或是專案較大時,我們就可以清楚的感受到他們的差異。而軟體工程師並不是只要達到目的,所需要的更是用"最好的方法"達到目標。而不同的演算法也有針對不同環境與場景下的不同應對措施。
在資料結構和演算法中,我主要會包含以下幾個主題
我們會從sorting的地方進行實作練習與講解,也會對不同的排序法進行比較與時間複雜度比較。那麼藉由今天簡單介紹與分布的keywords,大家可以再深入了解他們各自的差異,或是也可以去交大開放式課程(NYCU OCW)的資料結構中學習更深入的資訊
交大OCW影片連結:http://ocw.nctu.edu.tw/course_detail-v.php?bgid=9&gid=0&nid=412
因為鐵人賽我們還是以實作的部分與解析為主!那麼我們明天見~(。◕ ∀ ◕。)